iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Mobile Development

Android與Spring Boot開發學習之旅系列 第 26

開發學習之旅 Day26 - 在Android中整合FCM

  • 分享至 

  • xImage
  •  

新增Firebase SDK

  1. 到 Firebase 控制台,選擇 Android 應用程式圖示
    https://ithelp.ithome.com.tw/upload/images/20231006/20150372PYr8GDqC5J.png

  2. 輸入Android專案名稱(請與gradle中的namespace一致)
    https://ithelp.ithome.com.tw/upload/images/20231006/20150372JWe02risLI.png

  3. 下載json並加入Android專案中
    https://ithelp.ithome.com.tw/upload/images/20231006/20150372g9RKpa64nt.png

  4. 在Android Studio中找到Tools/Firebase
    https://ithelp.ithome.com.tw/upload/images/20231006/20150372j7ZNbrE1BR.png

  5. 找到Cloud Messaging
    https://ithelp.ithome.com.tw/upload/images/20231006/20150372GJLL6HwtgC.png

  6. 依序點擊,並照著提示會幫你自動添加Gradle
    https://ithelp.ithome.com.tw/upload/images/20231006/201503729av9NFihyL.png

建立FCMService

用於處理 Firebase 遠端訊息的接收和處理。

public class FCMService extends FirebaseMessagingService {

    public FCMService() {}

    @Override
    public void onNewToken(@NonNull String token) {
        super.onNewToken(token);
        Log.d("itDemo", "此設備Token: "+token);
    }
    
    @Override
    public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationManager notificationManager = getSystemService(NotificationManager.class);
            NotificationChannel channel = new NotificationChannel(
                    "it_ID", "it_demo", notificationManager.IMPORTANCE_DEFAULT);
            if (notificationManager != null) {
                notificationManager.createNotificationChannel(channel);
            }
        }

        RemoteMessage.Notification notification = remoteMessage.getNotification();
        NotificationCompat.Builder builder
                = new NotificationCompat.Builder(FCMService.this,"it_demo")
                .setContentTitle(notification.getTitle())
                .setContentText(notification.getBody())
                .setAutoCancel(true)
                .setPriority(NotificationCompat.PRIORITY_HIGH)
                .setCategory(NotificationCompat.CATEGORY_MESSAGE);

        NotificationManagerCompat notificationManagerCompat
                = NotificationManagerCompat.from(FCMService.this);
        notificationManagerCompat.notify(1,builder.build());
    }
}

FCMService 類別繼承了 FirebaseMessagingService 並覆寫了 onNewToken 與 onMessageReceived 方法。

  1. onNewToken 方法:
    當設備 Firebase Cloud Messaging 的 token發生變化時,此方法會被調用。
  2. onMessageReceived 方法:
    當接收到新的 FCM 訊息時,此方法會被調用,可以在這個方法中處理訊息與建立顯示通知。

測試FCM

  1. 前往 FireBbase Messaging 建立活動

https://ithelp.ithome.com.tw/upload/images/20231006/20150372bPuNMgkV3w.png
https://ithelp.ithome.com.tw/upload/images/20231006/20150372R0gnW4m78i.png

  1. 測試傳送訊息

https://ithelp.ithome.com.tw/upload/images/20231006/20150372KzaUxkMdiI.png

  1. 將Android端的Token輸入,並點擊測試按鈕

https://ithelp.ithome.com.tw/upload/images/20231006/20150372oeSFToYkPd.png


上一篇
開發學習之旅 Day25 - 在Spring Boot中整合FCM
下一篇
# 開發學習之旅 Day27 - Docker簡介
系列文
Android與Spring Boot開發學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言